跳到主要内容

1.11 数字比较器

在数字系统中进行算术或逻辑运算时,需要进行数据比较。这种比较确定一个数字是否大于、等于或小于另一个数字。数字比较器广泛用于组合系统,专门设计用于比较二进制数的相对大小。

这些比较器也有以集成电路(IC)的形式存在,具有不同的位比较配置,如4位、8位等。还可以将多个比较器以级联方式连接,以比较更长位数的数字。当我们想要比较两个二进制数时,首先需要比较最高有效位(MSB)。

如果这些最高有效位相等,那么我们才需要比较下一个有效位。但如果最高有效位不相等,那么就可以明确地知道A是大于还是小于B,比较过程就此结束。

例如,两个2位数分别是 A=A1A0A = A_1A_0B=B1B0B = B_1B_0。如果 A1A_1 不等于 B1B_1,那么可以明确地知道,当 A1=1A_1 = 1B1=0B_1 = 0 时,A大于B;或者当 A1=0A_1 = 0B1=1B_1 = 1 时,A小于B。此时,比较过程结束。

如果最高有效位相等,即 A1=B1A_1 = B_1,那么我们才需要比较下一个有效位 A0A_0B0B_0,并决定一个数字是大于、小于还是等于另一个数字。因此,比较器产生三个输出,分别对应小于(L)、等于(E)和大于(G)的比较结果。

数字比较器的类型

数字比较器可以分为两种类型:

  • 恒等比较器:只有一根输出线,输出为低或高电平。
  • 幅度比较器:有三根输出线,用于检查大于、小于或等于三种条件。

数字比较器

幅度数字比较器是一种组合逻辑电路,用于比较两个数字或二进制数(假设为A和B),并确定它们的相对大小,以判断一个数字是否等于、小于或大于另一个数字。

使用三个二进制变量来表示比较的结果,即A>B、A < B或A=B。下图展示了n位比较器的框图,该比较器比较两个n位长度的数字,并生成它们之间的关系。

alt text

这些比较器可以根据应用需求比较2位、4位和8位数字。它们以TTL和CMOS逻辑系列的IC形式存在,其中一些IC包括7485(4位比较器)、4585(CMOS系列中的4位比较器)和74AS885(8位比较器)。

单位幅度比较器

用于比较两个比特,即每个数字为单比特的比较器称为单位比较器。它包含两个输入,允许两个单比特数字,并有三个输出,用于生成小于、等于和大于的比较输出。

下图展示了单位幅度比较器的框图。该比较器比较两个比特,并产生以下三个输出之一:L(A < B)、E(A=B)和G(A>B)。

alt text

单位比较器的真值表如下所示。当 A0B0=00A_0B_0 = 001111 时,两个输入相等,因此A=B的输出为高电平。当 A0B0=01A_0B_0 = 01 时,B大于A,因此AB输出为高电平。

alt text

从真值表中可以得出每个输出的逻辑表达式:

alt text

使用这些布尔表达式,可以使用两个与门、一个非门和一个异或门实现该比较器的逻辑电路,如下图所示。与门用于判断一个二进制位是否小于或大于另一个位,而异或门用于判断两个二进制数是否相等。

alt text

在图中,一个与门的输入为 A0A_0B0\overline{B_0},另一个与门的输入为 A0\overline{A_0}B0B_0。因此,如果 A0>B0A_0 > B_0(即 A0=1A_0 = 1B0=0B_0 = 0),则一个与门的输出为1;如果 A0<B0A_0 < B_0(即 A0=0A_0 = 0B0=1B_0 = 1),则输出为0。同样,另一个与门的输出在 A0<B0A_0 < B_0(即 A0=0A_0 = 0B0=1B_0 = 1)时为1;在 A0>B0A_0 > B_0(即 A0=1A_0 = 1B0=0B_0 = 0)时为0。

异或门的输入为 A0A_0B0B_0,因此如果 A0=B0A_0 = B_0,异或门的输出为1;如果 A0B0A_0 \neq B_0,则输出为0。

2 位比较器

2 位比较器比较两个二进制数,每个数为两位,并产生它们之间的关系,例如一个数等于、大于或小于另一个数。下图展示了2位比较器的框图,它有四个输入和三个输出。

第一个数 AA 被指定为 A=A1A0A = A_1A_0,第二个数被指定为 B=B1B0B = B_1B_0。该比较器产生三个输出:G(如果 A>BA > B,则 G=1G = 1)、E(如果 A=BA = B,则 E=1E = 1)和 L(如果 A<BA < B,则 L=1L = 1)。

alt text

这个比较器的真值表如下所示,展示了各种输入和输出状态。

alt text

上述真值表的卡诺图简化如下所示。

alt text

从上述卡诺图简化中,每个输出可以表示为:

alt text

使用上述布尔方程,可以使用四个非门、七个与门、两个或门和两个异或门实现该比较器的逻辑图。

下图展示了使用基本逻辑门实现的2位比较器的逻辑图。也可以通过级联两个1位比较器来构建该比较器。

alt text

4 位比较器

它可以用于比较两个四位数。两个4位数分别为 A=A3A2A1A0A = A_3 A_2 A_1 A_0B=B3B2B1B0B = B_3 B_2 B_1 B_0,其中 A3A_3B3B_3 是最高有效位。

它将一个数字中的每一位与另一个数字中的对应位进行比较,并产生以下输出之一:A = B、A < B 和 A > B。该转换器的输出逻辑语句如下:

  • 如果 A3=1A_3 = 1B3=0B_3 = 0,则 A 大于 B(A > B)。
  • 或者,如果 A3A_3B3B_3 相等,且 A2=1A_2 = 1B2=0B_2 = 0,则 A > B。
  • 或者,如果 A3A_3B3B_3 相等,A2A_2B2B_2 相等,且 A1=1A_1 = 1B1=0B_1 = 0,则 A > B。
  • 或者,如果 A3A_3B3B_3 相等,A2A_2B2B_2 相等,A1A_1B1B_1 相等,且 A0=1A_0 = 1B0=0B_0 = 0,则 A > B。

从上述陈述中,输出 A > B 的逻辑表达式可以写为:

alt text

当一个数字的所有单独位与另一个数字的对应位完全一致时,将产生等于输出。然后,A=B 输出的逻辑表达式可以写为:

E=(A3B3)(A2B2)(A1B1)(A0B0)E = (A_3 \oplus B_3) (A_2 \oplus B_2) (A_1 \oplus B_1) (A_0 \oplus B_0)

从上述输出布尔表达式中,可以使用逻辑门实现该比较器的逻辑电路,如下所示。在这里,四个异或门的输出被应用于与门以给出二进制变量 E 或 A=B。其他两个输出也使用异或门的输出来生成如图所示的布尔函数。

alt text

4 位比较器大多以集成电路(IC)的形式存在,这种 IC 的常见类型是 7485。该 IC 可以通过将 I(A>B)、I(A < B)和 I(A=B)连接器输入接地到 Vcc 端,来比较两个 4 位二进制数。下图展示了 7485 比较器的引脚图。

除了普通的比较器外,该 IC 还提供了级联输入,以便级联多个比较器。通过级联这些比较器 IC,可以比较任意数量的位。

alt text

8 位比较器

8 位比较器通过级联两个 4 位比较器来比较两个 8 位数。该比较器的电路连接如下图所示,其中低阶比较器的 A < B、A=B 和 A>B 输出连接到高阶比较器的相应级联输入。

对于低阶比较器,A=B 级联输入必须连接到高电平,而其他两个级联输入 A 和 B 必须连接到低电平。高阶比较器的输出成为这个 8 位比较器的输出。

alt text

比较器的应用

  • 这些比较器用于计算机和基于微处理器的设备中的地址译码电路,以选择特定的输入/输出设备用于数据存储。
  • 这些比较器用于控制应用中,其中表示物理变量(如温度、位置等)的二进制数与参考值进行比较。然后,比较器的输出用于驱动执行器,使物理变量尽可能接近设定或参考值。
  • 过程控制器
  • 伺服电机控制